/*
 * Command.h
 */

#ifndef COMMAND_H_
#define COMMAND_H_
#include <iostream>
#include <string>
#include "../logical_layer/index/FileHandler.h"
using namespace std;

	static string  BUSQUEDA_AUTOR="-ba";
	static string TEST="-T";
	static string BUSQUEDA_TITULO="-bt";
	static string BUSQUEDA_FECHA="-bf";
	static string BUSQUEDA_ID="-bid";
	static string ELIMINAR_ID="-eid";
	static string ELIMINAR_IDTWIT="-eidt";
	static string ELIMINAR_IDRSS="-eidr";
	static string ELIMINAR_FECHA="-ef";
	static string ELIMINAR_FECHA_MAYOR="-efM";
	static string ELMINAR_FECHA_MENOR="-efm";
	static string HELP="-h";
	static string CARGA_RSS="-crss";
	static string CARGA_TWEET="-ctwit";
	static string EXPORTAR_ESTRUCTURAS="-export";
	static string COMPRIMIR="-c";
	static string DESCOMPRIMIR="-d";
	static string LZ77C="lz77";
	static string LZ78C="lz78";
	static string LZHUFFC="lzhuff";
	static string ESTADISTICAS_COMPRESORES="-e";
class Command {

public:
	Command(string claveComando,string tipoComandoLeyenda,FileHandler* fileHandler);
	virtual void execute(int argc,char** argv)=0;
	virtual ~Command();
	friend ostream& operator << (ostream &o,const Command &b);
protected:
	bool visulizarPantalla();
	bool confirmationMessage(string message);


protected:

	string claveComando;
	string tipoComandoLeyenda;
	FileHandler* fileHandler;

};

#endif /* COMMAND_H_ */
